1. Field of the Invention
This invention relates in general to computer systems and, more particularly, to apparatus and methodology for preventing undesired access to personal computer systems.
2. Description of Related Art
Personal computer systems in general and IBM compatible personal computer systems in particular have attained widespread use. These personal computer systems now provide computing power to many segments of today's modem society. A personal computer system can usually be defined as a desktop, floor-standing, or portable microcomputer that includes a system unit having a system processor with associated volatile and non-volatile memory, a display monitor, a keyboard, one or more floppy diskette drives, a mass storage device such as a hard disk, and an optional printer. One of the distinguishing characteristics of these systems is the use of a system board or motherboard to electrically connect these components together. These personal computer systems are information handling systems which are designed primarily to give independent computing power to a single user (or a relatively small group of users in the case of personal computers which serve as server systems). Such personal computer systems are generally inexpensively priced for purchase by individuals or small businesses. A personal computer system may also include one or a plurality of I/O devices (i.e. peripheral devices) which are coupled to the system processor and which perform specialized functions. Examples of I/O devices include modems, sound and video devices or specialized communication devices. Mass storage devices such as hard disks, CD-ROM drives and magneto-optical drives are also considered to be peripheral I/O devices.
Personal computer systems typically include basic input/output system (BIOS) microcode to make programmer/user interaction with the system hardware easier. More specifically, BIOS is a microcode software interface between the system hardware and the operating system/application program. The operating system and application program access BIOS rather than directly manipulating I/O ports, registers and control words of the specific system hardware. BIOS is accessed through an interface of software interrupts and contains a plurality of entry points corresponding respectively to the different interrupts. In operation, BIOS is typically loaded from a BIOS ROM in which it is stored into a main system memory from which it is executed. This practice is referred to as "shadow RAM" and increases the perceived speed at which BIOS executes.
It is often desirable to limit access to certain portions of mass storage devices such as the hard disk drive of the computer system. Virus writers are known to write programs which write over critical areas of the computer's main mass storage device or disk drive. Such virus programs can cause the computer to malfunction. FIG. 1 shows the layout of a typical hard disk drive 10 which is subject to such tampering. Although hard drive 10 is divided into cylinders and sectors according to well known convention, drive 10 is represented linearly in FIG. 1 as including a master boot record 15, a boot record 20 for a native operating system, a file allocation table (FAT) 25, a root directory 30 and customer data 35 which includes applications and corresponding data. A first partition 40 is formed by the contents of boot record 20, file allocation table 25, root directory 30 and customer data 35. An optional second partition is shown as second partition 45. Second partition 45 can include an alternative operating system, applications and data. Master boot record 15 and boot record 20 are critical to the proper startup and correct operation of the computer system. Unfortunately, it is a well known practice of virus writers to write virus code which attacks and overwrites these critical areas of drive 10. The purpose of such an attack is generally to damage or obtain control of the computer system. Accordingly, it is desirable that these critical areas of the storage device or drive be protected from such malicious access.
One conventional way to protect these critical areas of the disk drive from undesired access is employed in the OS/2.RTM. Warp operating system product manufactured by the International Business Machines Corporation. That operating system will not grant the right to an application program to write to critical areas of the disk drive such as the master boot record. Unfortunately, this protection mechanism relies on the operating system. Thus, if the OS/2 Warp operating system is stored in first partition 40 and an alternative operating system such as the AIX operating system (AIX is a trademark of the International Business Machines Corporation) is stored in the second partition 45, then the protection mechanism is available only when the operating system in the first partition is active. Such protection would not necessarily be available when the operating system installed in the second partition is active unless that operating system were specifically written with protective features similar to the OS/2 Warp operating system installed on the first partition. In this scenario, the protection mechanism is said to be "operating system dependent" because it depends on the operating system for its existence and functionality.
An alternative conventional approach to protecting critical areas of the disk drive is seen in the Microsoft Anti-Virus application program. This program is an application/driver which traps and prevents a virus program from writing to a critical area of the disk drive. Another alternative conventional approach to protecting critical areas of the disk drive is a terminate and stay resident (TSR) program which traps and prevents writes to such regions of the disk. Unfortunately, the three above discussed conventional approaches are all "operating system dependent". They are all subject to a user inadvertently or intentionally booting from a floppy disk left in the floppy disk drive of the computer system. In this case, the protection provided by the operating system, or alternatively the driver or the TSR, would be avoided. The critical areas of the hard disk of the computer system would thus be left vulnerable to penetration and attack by a virus program.